Redis和SAS使用闪存的两种不同方式
企业级闪存应用有两个比较看好的形态——服务器上的PCIe SSD和全闪存阵列,在前者的硬件基础上还可以搭建SDS(包括ServerSAN)/超融合。今天我尝试就这两个方面写点软硬结合的东西,如有错误或不足欢迎在留言中补充指正。
最近看到两份资料——《Redis on Samsung NVMe Benchmarking Results》和《Modernizeyour SAS analytics infrastructure to get smart, timely decisions at scale》,Redis是流行的in-memory NoSQL数据库,而SAS则是著名的(大数据)分析软件。
DRAM/Flash分层由设备还是应用来做?
日前冬瓜哥撰写了一篇《这货是内存与Flash的合体!?》,里面提到Diablo公司推出一款“奇特的内存条”Memory1,在之前Flash DIMM的基础上按照8:1的比例加入一些DRAM内存,安装内核模块DMX,动态识别冷热数据实现分层存储。
有同行朋友指出:“Diablo提到的相关应用Redis、Spark其实已经开始做同样的事情了,不过是在应用层本身。应用层与内核实现比起来热点数据识别更准确,内核实现好处是可以支持全部应用。”
我个人的感觉是,Memory1这种形态的产品在3D Xpoint等下一代SCM存储器成熟之前有一定市场,后续则不好说。当然也不排除Diablo将来变成一家软件公司?其实他们现在的核心技术也是控制FPGA、以及驱动相关的软件吧。
扯远了,下面我们先来看看Redis对闪存的支持情况。
RLEC(Redis LabsEnterprise Cluster)Flash也是在快速介质(内存)和慢速介质(闪存)之间分层,可以配置二者之间的比例,支持将Key-Values中的Key和较热的Values存放在内存,较冷的Values放在闪存。
此外它还使用了一个可插入的存储引擎(如RocksDB)来优化对块存储的访问。
Redis测试:NVMe SSD发挥读优势、写入靠内存?
测试平台的硬件使用了Dell PowerEdge R730xd服务器和4块三星NVMe PM1725闪存卡,软件版本是RLECv4.3,在客户端上运行Memtier_benchmark v1.2.6。客户端和服务器之间通过10Gbps以太网连接。
上面是对象大小1KB,80%读20%写的测试结果,平均每秒操作数达到1.24M Op/sec,并且99%请求的延时低于1ms。
同时我看到有大约不低于2GB/s的磁盘读带宽,这么说写操作主要被内存顶住了?或者在内存中先进行了合并?另一方面,网络带宽(单位应该是Gb/s)的读/写比例正常,同时数据量也与测试负载相符。
当对象大小降低到100byte时,性能提升到2.04M Op/sec,此时瓶颈应该不在SSD和网络带宽上。
这份白皮书中还指出,NVMe SSD的测试吞吐量达到了常规SATA SSD的40倍,不过没有说SATA SSD的具体型号和数量。
SAS分析测试:谁说集中存储跑不快?
上文中讨论的Redis测试只使用了1个服务器节点,根据我的一知半解,内存数据库的生产部署通常是集群方式。除非只做Cache数据不怕丢,还需要考虑内存在节点间的复制、持久化和掉电保护问题。
在《RAID卡未来之路:除了NVMe还有啥?》一文中,我也曾提到服务器上NVMe SSD的RAID目前还不成熟,业界尚未达成相对统一的解决方案。因此,对于SDS/超融合这些需要保证数据可靠性和可用性的应用,就会在分布式系统上使用多副本或者纠删码来做保护。
而集中式存储的潜力实际上尚未挖光,Dell EMC DSSD的出现告诉人们,如果数据路径针对闪存足够优化,并且去掉除基本RAID保护之外的一些数据服务,双控也可以达到惊人的性能。
上图是用SAS分析软件在一台DSSD D5上压测出的结果。首先,1台Dell R730服务器运行102个jobs,耗时16小时53分钟,最大带宽8.8GB/s。然后是4台R730运行408个jobs,耗时17小时10分钟,最大带宽达到18.1GB/s,也就是说单位时间完成的任务接近提升至4倍。当8台R730运行816jobs,仍然在18小时41分钟完成,最大带宽22.8GB/s。
根据job数量和任务执行时间,我推测平均带宽与服务器数量之间能达到接近线性的关系。
我对SAS软件了解不多,那么以上的硬件方案还能适合哪些应用呢?除了实时数据分析之外,由于DSSD具备传统企业级集中存储的可靠性和可用性,在之前的EMC资料中还提到了包括Oracle、MPP、Hadoop在内的OLTP、OLAP等应用。
根据上面的测试配置表,每台Dell EMC(注意联合品牌,这也算是新公司的解决方案吧)PowerEdge R730服务器安装了2块Client PCIe DSSD HSX-2扩展卡来连接DSSD。DSSD D5共有36个4.6TB(根据EMC资料可用闪存容量应为4TB?)的闪存模块。
在《解析DSSD对象机制:内存APIAtomic读写再现》一文中,我曾经讨论过DSSD支持的多种访问方式,根据这份报告的测试步骤,SAS分析使用的是通用块设备服务。
参考资料:
http://www.samsung.com/semiconductor/global/file/insight/2016/05/WP-RedisLabs-Samsung-NVMe-Benchmark-103-Web-1.pdf
http://www.emc.com/collateral/analyst-reports/h15424-ar-modernize-sas-analytics-infra.pdf
注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage
长按二维码可直接识别关注